/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ec.edu.ups.cidi.siia.plamdep.cargadocumentos;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;

import org.apache.poi.hwpf.extractor.WordExtractor;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;

import ec.edu.ups.cidi.siia.plamdep.interfaces.ILectorArchivos;
import ec.edu.ups.cidi.siia.plamdep.utils.Log;
/**
 *
 * @author Usuario
 */
public class LectorWord implements ILectorArchivos
{

    private String texto="";

    
    public LectorWord(String ruta)
    {
          this.leerArchivo(ruta);
    }
    
    public void leerArchivo(String ruta) {
        try{
      File documento = new File(ruta);
      FileInputStream entrada = new FileInputStream(documento);
      InputStream entradaArch = entrada; 
      if(documento.getName().endsWith(".doc")){
               WordExtractor word = new WordExtractor(entradaArch);
               texto = word.getText();
               String[] lineas = texto.split("\n");
               int c=0;
               texto ="";
               for(String linea : lineas) //se carga en linea el valor de cada posicion lineas
               {
                   if(linea.contains("HYPERLINK \"http")==false)//no considera las imagenes
                   texto = texto + lineas[c]+"\n";
                   c++;
               }
            }
            else{
               WordprocessingMLPackage wordMLPackage =  WordprocessingMLPackage.load(documento);
               MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
               List<Object> lineas = documentPart.getContent();
               for(Object o : lineas)
                texto = texto + o.toString() + "\n";
          }
        entrada.close();
        entradaArch.close();
        }catch(Exception e){ 
        Log.log(e,Log.MOD_CARGA_DOCUMENTOS,Log.LEVEL_WARNING, LectorWord.class,"Error al LectorWord:"); 
        }
    }

    
    public String getContenido() {
        return texto;
    }

    
    public String getTipo() {
        return "word";
    }
    
}


